package net.fruit.mq.client;

import java.util.Properties;

import net.fruit.mq.client.order.OrderConsumer;
import net.fruit.mq.client.order.OrderProducer;
import net.fruit.mq.client.transaction.LocalTransactionChecker;
import net.fruit.mq.client.transaction.TransactionProducer;

/**
 * 创建生产者和消费者工厂类接口
 * 
 * @author CNJUN
 *
 */
public abstract interface MQFactoryAPI {

    public Producer createProducer(final Properties properties);

    public Consumer createConsumer(final Properties properties);

    public OrderProducer createOrderProducer(final Properties properties);

    public OrderConsumer createOrderedConsumer(final Properties properties);

    public TransactionProducer createTransactionProducer(final Properties properties,
                                                         final LocalTransactionChecker checker);
    
}
